#include "qprofakturi.h"
#include "qizvodvnes.h"
#include "qizvodkorekcija.h"
#include "qizleznifakturivnes.h"
#include "qizleznifakturikorekcija.h"

QMyProFakturi::QMyProFakturi(QWidget *parent)
: QMyBaseWidget(parent)
,ProFakturiVnes(0)
,ProFakturiKorekcija(0)
,ProFakturiLista(0)
,ProFakturiWizard(0)
,m_row(0)
{
	ui.setupUi(this);
	pressF4();
}

QMyProFakturi::~QMyProFakturi()
{

}

void QMyProFakturi::refresh()
{
}
void QMyProFakturi::pressF2()
{
	closeAllForm();
	ProFakturiVnes = showMyWidget<QProFakturiVnes>(ProFakturiVnes); 
    ProFakturiVnes->setCategoryWidget(this);
	connect(ProFakturiVnes,SIGNAL(closeW()),this,SLOT(closeW()));
	connect(ProFakturiVnes,SIGNAL(scallKomintenti(QWidget*, QString)),this,SLOT(callKomintenti(QWidget*, QString)));
	connect(ProFakturiVnes,SIGNAL(scallArtikli(QWidget*, QString)),this,SLOT(callArtikli(QWidget*, QString)));
	emit disablePrint(true);

}
void QMyProFakturi::pressF3()
{
    if(!ProFakturiLista)
    {
        return;
    }
    int id = ProFakturiLista->getSelectedId();
    closeAllForm();
    ProFakturiKorekcija = showMyWidget<QProFakturiKorekcija>(ProFakturiKorekcija); 
    ProFakturiKorekcija->setCategoryWidget(this);
    connect(ProFakturiKorekcija,SIGNAL(closeW()),this,SLOT(closeW()));
    connect(ProFakturiKorekcija,SIGNAL(scallKomintenti(QWidget*, QString)),this,SLOT(callKomintenti(QWidget*, QString)));
    connect(ProFakturiKorekcija,SIGNAL(scallArtikli(QWidget*, QString)),this,SLOT(callArtikli(QWidget*, QString)));
    ProFakturiKorekcija->init(id);
	emit disablePrint(true);
	
}
void QMyProFakturi::pressF4()
{
    closeAllForm();
    ProFakturiLista = showMyWidget<QProFakturiLista>(ProFakturiLista); 
    ProFakturiLista->setCategoryWidget(this);
	ProFakturiLista->setRow(m_row);
    connect(ProFakturiLista, SIGNAL(closeW()), this, SLOT(closeWLista()));
    connect(ProFakturiLista, SIGNAL(procF2()), this, SLOT(procF2()));
    connect(ProFakturiLista, SIGNAL(procF3()), this, SLOT(procF3()));
    connect(ProFakturiLista, SIGNAL(procF6()), this, SLOT(procF6()));
    connect(ProFakturiLista, SIGNAL(procDel()), this, SLOT(procDel()));
	connect(ProFakturiLista, SIGNAL(sFakturiToIzvod(QString&, QString&, QString&, QString&)), this, SLOT(retProFakturiToIzvod(QString&, QString&, QString&, QString&)));
	emit disablePrint(false);

}

void QMyProFakturi::pressF6()
{
    if(!ProFakturiLista)
    {
        return;
    }
    int id = ProFakturiLista->getSelectedId();
    closeAllForm();
    ProFakturiWizard = showMyWidget<QProFakturiWizard>(ProFakturiWizard); 
    ProFakturiWizard->setCategoryWidget(this);
    connect(ProFakturiWizard,SIGNAL(closeW()),this,SLOT(closeW()));
    connect(ProFakturiWizard,SIGNAL(scallKomintenti(QWidget*, QString)),this,SLOT(callKomintenti(QWidget*, QString)));
    connect(ProFakturiWizard,SIGNAL(scallArtikli(QWidget*, QString)),this,SLOT(callArtikli(QWidget*, QString)));
    ProFakturiWizard->init(id);
    emit disablePrint(true);
}


void QMyProFakturi::procF2()
{
    pressF2();
}
void QMyProFakturi::procF3()
{
    pressF3();
}

void QMyProFakturi::procF6()
{
    pressF6();
}

void QMyProFakturi::procDel()
{

}
void QMyProFakturi::pressEscape()
{
    this->raise();
    this->setFocus();
	emit disablePrint(true);

    emit signCloseMyWidget();
}
void QMyProFakturi::closeW()
{
    pressF4();
}
void QMyProFakturi::closeWLista()
{
    pressEscape();
}

void QMyProFakturi::closeAllForm()
{
    ProFakturiKorekcija = deleteMyWidget<QProFakturiKorekcija>(ProFakturiKorekcija);
    ProFakturiVnes = deleteMyWidget<QProFakturiVnes>(ProFakturiVnes);
	if (ProFakturiLista)
	{
		m_row = ProFakturiLista->getRow();
	}
    ProFakturiLista = deleteMyWidget<QProFakturiLista>(ProFakturiLista);
    ProFakturiWizard = deleteMyWidget<QProFakturiWizard>(ProFakturiWizard);
}
void QMyProFakturi::callKomintenti(QWidget* myobj, QString text)
{
    emit signKomintentiFromIspratnica(myobj, text);
}

void QMyProFakturi::callArtikli(QWidget* myobj, QString text)
{
    emit signArtikliFromIspratnica(myobj, text);
}

void QMyProFakturi::sendPrintMessage()
{
    emit signPrint();
}


QStandardItemModel* QMyProFakturi::getModel()
{
    QStandardItemModel * modelExt;
    if (ProFakturiLista)
    {
        modelExt = ProFakturiLista->model;
    } 
    else
    {
        modelExt = NULL;
    }
    return modelExt;
}

QStandardItemModel* QMyProFakturi::getModel2()
{
    QStandardItemModel * modelExt;
    if (ProFakturiLista)
    {
        modelExt = ProFakturiLista->model2;
    } 
    else
    {
        modelExt = NULL;
    }
    return modelExt;
}

QStringList QMyProFakturi::getIspratnicaInfo()
{
    QStringList modelExt;
    modelExt.clear();

    if (ProFakturiLista)
    {
        modelExt = ProFakturiLista->geInfo();
    } 
    else
    {
        modelExt;
    }
    return modelExt;
}

void QMyProFakturi::retProFakturiToIzvod(QString& text6, QString& text8, QString& text9, QString& textName)
{
	QWidget *sour = getSourceWidget();
	if (qobject_cast<QIzvodVnes*>(sour))
	{
		QIzvodVnes *dest = qobject_cast<QIzvodVnes*>(sour);
//		dest->setFakturi(text6, text8, text9, textName);
		emit eupdateNanigator(dest->getCategoryWidget(), this);
		dest->setFocusLine2();
	}
	if (qobject_cast<QIzvodKorekcija*>(sour))
	{
		QIzvodKorekcija *dest = qobject_cast<QIzvodKorekcija*>(sour);
//		dest->setProFakturi(text6, text8, text9, textName);
		emit eupdateNanigator(dest->getCategoryWidget(), this);
		dest->setFocusLine2();
	}
	if (qobject_cast<QIzlezniFakturiVnes*>(sour))
	{
		QIzlezniFakturiVnes *dest = qobject_cast<QIzlezniFakturiVnes*>(sour);
		dest->setProfakturaID(textName);
		emit eupdateNanigator(dest->getCategoryWidget(), this);
		dest->setFocusLine2();
	}
	if (qobject_cast<QIzlezniFakturiKorekcija*>(sour))
	{
		QIzlezniFakturiKorekcija *dest = qobject_cast<QIzlezniFakturiKorekcija*>(sour);
		dest->setProfakturaID(textName);
		emit eupdateNanigator(dest->getCategoryWidget(), this);
		dest->setFocusLine2();
	}
}

void QMyProFakturi::setInitSearchText(QString text)
{
    if (ProFakturiLista)
    {
        ProFakturiLista->setInitText(text);
    } 
}